﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Media;
using System.Xml.Linq;

namespace vmlModel.Entities
{
   public  class vmlFill : vmlObject
    {
       public Color Color {
           get
           {
               if (vmlObjElement.Attribute("color") != null)
               {
                   string clr = vmlObjElement.Attribute("color").Value.Split(char.Parse(" "))[0];
                   if (clr.ToLower() == "fill" || clr == "")
                   {
                       string pclr = vmlObjElement.Parent.Attribute("fillcolor").Value.Split(char.Parse(" "))[0];
                       return vmlUtils.StringToColor(pclr);
                   }
                   else
                   {
                       return vmlUtils.StringToColor(clr);
                   }
               }
               else {
                   if (vmlObjElement.Parent.Attribute("fillcolor") != null)
                   {
                       string pclr = vmlObjElement.Parent.Attribute("fillcolor").Value.Split(char.Parse(" "))[0];
                       return vmlUtils.StringToColor(pclr);
                   }
               }
          return  Colors.Transparent; 
       } 
       }
       public Color Color2 { get { return (vmlObjElement.Attribute("color2") != null) ? vmlUtils.StringToColor(vmlObjElement.Attribute("color2").Value.Split(char.Parse(" "))[0]) : Colors.Black; } }
       public int Angle { get { return (vmlObjElement.Attribute("angle") != null) ? vmlUtils.GetPostiveAngle(int.Parse(vmlObjElement.Attribute("angle").Value)) : 0; } }
       public int Focus { get { return (vmlObjElement.Attribute("focus") != null) ? int.Parse(vmlUtils.GetPercent(vmlObjElement.Attribute("focus").Value).ToString()) : 0; } }
       public double Opacity { get { return (vmlObjElement.Attribute("opacity") != null) ? double.Parse(vmlObjElement.Attribute("opacity").Value) : 1; } }
       public double Opacity2 { get { return (vmlObjElement.Attribute("opacity2") != null) ? double.Parse(vmlObjElement.Attribute("opacity2").Value) : 1; } }
       public string Type { get { return (vmlObjElement.Attribute("type") != null) ? vmlObjElement.Attribute("type").Value : "single"; } }       
       public vmlFill()
       {

       }
       public vmlFill(XElement _vmlObjElement)
           : base(_vmlObjElement)
       {
           FillMe();
       }

       private void FillMe()
       {
           
       }

    }
}
